package com.baijia.tianxiao.push.dao.mybatis;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baijia.tianxiao.push.dao.mybatis.base.BaseMapper;
import com.baijia.tianxiao.push.model.UserDeviceAttribute;

/**
 * 
 * UserDeviceAttributeMapper数据库操作接口类
 * 
 **/

public interface UserDeviceAttributeMapper extends BaseMapper{


	/**
	 * 
	 * 查询（根据主键ID查询）
	 * 
	 **/
	UserDeviceAttribute  selectByPrimaryKey (Long id );

	/**
	 * 
	 * 删除（根据主键ID删除）
	 * 
	 **/
	int deleteByPrimaryKey (Long id );

	/**
	 * 
	 * 添加
	 * 
	 **/
	int insert( UserDeviceAttribute record );

	/**
	 * 
	 * 添加 （匹配有值的字段）
	 * 
	 **/
	int insertSelective( UserDeviceAttribute record );

	/**
	 * 
	 * 修改 （匹配有值的字段）
	 * 
	 **/
	int updateByPrimaryKeySelective( UserDeviceAttribute record );

	/**
	 * 
	 * 修改（根据主键ID修改）
	 * 
	 **/
	int updateByPrimaryKey ( UserDeviceAttribute record );
	
	/**
	 * 查找设备和uid及业务类型对应的属性对象
	 * @param record
	 * @return
	 */
	UserDeviceAttribute findByDeviceAndBizUserId(@Param("deviceId")String deviceId,@Param("bizUserId")String bizUserId );
	
	
	/**
	 * 查找uid前缀匹配及对应业务类型的属性对象
	 * @param record
	 * @return
	 */
	List<UserDeviceAttribute> queryByBizAndUserIdPrefix(@Param("bizUserIdPrefix")String bizUserIdPrefix );
	
	/**
	 * 查找uid匹配及对应业务类型的属性对象
	 * @param record
	 * @return
	 */
	List<UserDeviceAttribute> queryByBizAndUserId(@Param("bizUserId")String bizUserId );
	
	
	/**
	 * 根据deviceId和bizUserId更新属性attribute和状态status
	 * @param record
	 * @return
	 */
	int updateAttributeAndStatus(UserDeviceAttribute record);
	
	/**
	 *  根据deviceId和bizUserId更新状态status
	 * 
	 * @param record
	 * @return
	 */
	int updateStatus(UserDeviceAttribute record);

}